package com.zr.domain.caffeine.controller;


import com.zr.domain.caffeine.User;
import com.zr.domain.caffeine.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller {
    @Autowired
    private UserService userService;


    public void testCache() {
        // 第一次调用：触发数据库查询，存入缓存
        User user1 = userService.getUserById("1001");  // 输出 "查询数据库，用户ID: 1001"

        // 第二次调用：直接从缓存获取，不查询数据库
        User user2 = userService.getUserById("1001");  // 无输出

        // 更新用户信息：更新数据库并刷新缓存
        User updatedUser = new User("1001", "New-User-1001");
        userService.updateUser(updatedUser);           // 输出 "更新数据库用户: 1001"

        // 第三次调用：缓存已更新，直接返回新值
        User user3 = userService.getUserById("1001");  // 无输出，但返回更新后的对象

        // 删除用户：清除缓存
        userService.deleteUser("1001");                // 输出 "删除数据库用户: 1001"

        // 第四次调用：缓存已清除，再次查询数据库
        User user4 = userService.getUserById("1001");  // 输出 "查询数据库，用户ID: 1001"
    }
}
